Computing systems are routinely connected to communications networks to facilitate remote access to data, processing resources, and application programs. This communications are facilitated by the use of standard communications transport protocols such as TCP/IP, UDP, and similar cooperative data transfer protocols. Computing systems also are routinely connected to peripheral devices such as mass storage devices that maintain data generated and used by applications. Peripheral devices may maintain this data within data structures that may differ from the various formats and data structures used by applications as well as formats and data structures used in network communications.
These formats and data structures used in the various components in a computing system may also change over time as the technology of various components evolves. For example, disk drives and similar storage devices store data using blocks, tracks, and sectors that relate to the physical media used for storage. These structures may vary as the size of the rotating platter, the density of the tracks, and transfer data rate change. Additionally, these same factors may combine with data buffer sizes within the peripheral devices and the system data transfer rate from peripheral devices to system memory to affect the data structures and formats used within a system.
Many applications may require support for user over an extended period of time during which the above components evolve requiring changes to the data formats and data structures using within a computing system. These changes typically require the applications to be re-written over time to accommodate these changes. In addition, the applications may need to support multiple formats and data structures that depend solely upon which peripheral devices, such as mass storage, devices are present on a given computing system at a particular point in time. All of these possible combinations create a need for manners to reformat data within a computing system in an efficient manner. This need may also include devices and processes that offload the reformatting operations from a system processor while not degrading data transfer rates between devices in the computing system. The present invention attempts to address many of these deficiencies within the prior art as noted above.